home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / ffccflow / ffccflow.lha / ffccc+flow / flow / flow.hlp < prev    next >
Text File  |  1992-07-31  |  4KB  |  145 lines

  1. 1 FLOW
  2.  
  3.  FLOW uses a file produced by Floppy (see HELP FLOPPY) to produce reports 
  4.  on the structure of the Fortran program on which Floppy was used.
  5.  
  6.  There is a "FLOPPY User Guide" DD/US/112 which describes the use
  7.  of FLOW and FLOPPY, available in the UCO Batiment 513.
  8.  
  9.  Syntax:
  10.   
  11.  FLOW input_file /qualifier [/qualifiers] 
  12.  
  13.  Note that at least one qualifier must be given.
  14.  
  15.  If you have problems or questions about FLOW or FLOPPY, then please
  16.  mail JULIAN@VXCERN.CERN.CH.
  17.  
  18.  FLOW is based on an original idea by P.Palazzi.
  19.  
  20. 2 Parameter
  21. input_file
  22.  
  23.   The input file is a file of type .FLOPTRE produced by Floppy.
  24.   This file is easily created by using a Floppy command like:
  25.  
  26.   $ floppy myfile /nochecks /tree
  27.  
  28.   This file is a binary file, and cannot be viewed on the
  29.   terminal. It can only be processed by Flow. The default
  30.   file type is .floptre. A Flow command to operate on the
  31.   floptre file produced above might thus be:
  32.  
  33.   $ flow myfile /structure
  34.  
  35.  
  36. 2 Qualifiers
  37.  
  38. /QUERY
  39.  
  40.   /QUERY
  41.  
  42.   Enter an interactive FLOW session, where the routine calling
  43.   tree can be explored by specifying the node name, and seeing
  44.   all routines calling the node and all routines that are called
  45.   by the node. 
  46.  
  47. /STRUCTURE_CHART 
  48.  
  49.   /STRUCTURE_CHART[=(filename)]
  50.   
  51.   Create a file containing the calling tree of the source
  52.   program. Each SUBROUTINE, PROGRAM or FUNCTION in the 
  53.   source is a node in the calling tree. Each node is
  54.   displayed in the chart so that one can see a) which
  55.   other nodes call it, b) which nodes it calls, c) whether
  56.   the node is external, a stub, a subtree node, d) the
  57.   IF or DO level if the node is in an IF or DO clause.
  58.   
  59.   In addition, if the source FORTRAN contains a comment
  60.   line IMMEDIATELY after each procedure declaration, e.g.
  61.         SUBROUTINE INIJOB
  62.   C! This subroutine initialises the job
  63.  
  64.   (the ! sign is important), then this comment is extracted
  65.   and put as a label to the node name in the structure 
  66.   chart. 
  67.  
  68. /GRAPHICS
  69.  
  70.   /GRAPHICS=(filename)
  71.  
  72.   Cause a picture file to be written, which may afterwards
  73.   be viewed using a PostScript previewer (if /POSTSCRIPT
  74.   is also specified). The picture file contains an approximate
  75.   representation of the equivalent SASD structure chart that
  76.   corresponds to the existing state of the Fortran code.
  77.   An effort is made to position the modules (SUBROUTINEs, 
  78.   FUNCTIONs, etc.) on the plot so that line crossing is 
  79.   minimised, but this is not always successful! 
  80.  
  81.   It is recommended to use the /NOEXTERNAL qualifier together 
  82.   with the /GRAPHICS qualifier: this helps to minimise the 
  83.   complexity of the plot.
  84.  
  85. /NODE 
  86.  
  87.   /NODE=(nodename)
  88.  
  89.   Specify the name of the node in the program calling tree
  90.   from which the flow should begin.
  91.   
  92.   NB This qualifier MUST only be used with the STRUCTURE_CHART 
  93.      and GRAPHICS qualifiers.
  94.  
  95. /EXTERNALS 
  96.  
  97.   /EXTERNALS  (D)
  98.   /NOEXTERNALS
  99.   
  100.   Specify whether the calling tree should contain the names
  101.   of procedures external to the program or not. You should
  102.   use this if you wish to suppress nodes such as SIN, COS,
  103.   UCOPY etc from the flow.
  104.  
  105.   NB This qualifier can only be used with the STRUCTURE_CHART,
  106.      GRAPHICS and QUERY qualifiers.
  107.  
  108. /COMMON_TABLE 
  109.  
  110.   /COMMON_TABLE[=(filename)]
  111.  
  112.   Create a table containing procedure names on one axis, and
  113.   COMMON block names on the other, and indicate for each
  114.   procedure/COMMON intersection whether the COMMON block is
  115.   used or not in the procedure.  
  116.  
  117. /LOG
  118.  
  119.   /LOG  (D)
  120.   /NOLOG
  121.  
  122.   Show a summary of the FLOW command parsing, or not.
  123.  
  124. 2 Examples
  125.  
  126.   You must have a data file obtained using FLOPPY:
  127.  
  128.   $ FLOPPY /TREE /NOCHECKS  myfile.FOR
  129.  
  130.   the FLOPPY data will be called "myfile.FLOPTRE".
  131.  
  132.   Create a structure chart called STRUCTURE.CHT showing
  133.   the calling sequence in myfile.FOR:
  134.  
  135.   $ FLOW myfile /STRUCTURE=STRUCTURE.CHT
  136.  
  137.   Ignore all externals, and start from the routine called INIJOB :
  138.  
  139.   $ FLOW myfile /STRUC /NOEXT /NODE=INIJOB
  140.  
  141.   Enter the interactive exploration facility of FLOW
  142.  
  143.   $ FLOW myfile /QUERY
  144.  
  145.